#include <iostream>
#include <stack>
#include <algorithm>

using namespace std; 

const int N=1e6+10;

int h[N],v[N],ret[N];

int main() 
{
	int n;cin>>n;
	for(int i=1;i<=n;i++) cin>>h[i]>>v[i];
	
	stack<int> st1;
	for(int i=1;i<=n;i++)
	{
		while(st1.size()&&h[i]>=h[st1.top()]) st1.pop();
		if(st1.size()) ret[st1.top()]+=v[i];
		st1.push(i);
	}

	stack<int> st2;
	for(int i=n;i>=1;i--)
	{
		while(st2.size()&&h[i]>=h[st2.top()]) st2.pop();
		if(st2.size()) ret[st2.top()]+=v[i];
		st2.push(i);
	}
	
	int res=-1;
	for(int i=1;i<=n;i++)
	{
		res=max(res,ret[i]);
	}
	
	cout<<res<<endl;
	
	return 0;
}
